
export function testBBox(a: raphaeljs.BBox2, b: raphaeljs.BBox2) {
    function detect(x:number, y:number) {
        return x >= a.x && x<=a.x2 && y >= a.y && y <= a.y2
    }
    return detect(b.x, b.y)
            || detect(b.x, b.y2)
            || detect(b.x2, b.y)
            || detect(b.x2, b.y2)
}


Raphael.fn.eachPathCoords = function (pathData: any[][], cb: any) {
    for(let seg of pathData){
        this.segmentCoords(seg, cb)
    }
}
Raphael.fn.segmentCoords = function(seg: any[], cb: any) {
    switch(seg[0]) {
        case 'M' :
        case 'L' :
        case 'T' :
            cb(seg, 1, 2)
            break
            
        case 'H' :
            cb(seg, 1, null)
            break

        case 'V' :
            cb(seg, null, 2)
            break

        case 'C' :
            cb(seg, 5, 6)
        case 'S' :
        case 'Q' :
        case 'R' :
            cb(seg, 1, 2)
            cb(seg, 3, 4)
            break

        case 'A' :
            cb(seg, 6, 7)
            break
    }
}